package co.fitstart.admin.service;

import java.util.Date;
import java.util.List;

import co.fitstart.entity.coach.CoachRestCalendar;
import co.fitstart.entity.coach.CoachRestType;
import co.fitstart.entity.principal.Principal;
import co.fitstart.entity.site.Site;

/**
 * 
 * @author mohanlan
 *
 */
public interface RestCalendarService {
    
    /**
     * 
     * @param site
     * @param coach
     * @param beginDate
     * @param endDate
     * @return
     */
    public List<CoachRestCalendar> listRestCalendar(Site site, Principal coach, Date beginDate, Date endDate);
    
    /**
     * 
     * @param sites
     * @param coach
     * @param beginDate
     * @param endDate
     * @return
     */
    public List<CoachRestCalendar> listRestCalendar(List<Site> sites, Principal coach, Date beginDate, Date endDate);
    
  /**
   * 
   * @param coach
   * @param coachRestType
   * @param restDate
   * @param restHour
   * @param dates
   */
    public void editRestCalendar(Principal coach, CoachRestType coachRestType, Date restDate, String restHour,List<String> dates);
    
    public void editBatchSchedule(String coaches, 
                                  Date trainingDate,
                                  Date conferenceDate,
                                  Date businessDate,
                                  Date dutyDate,
                                  String trainingHour,
                                  String conferenceHour,
                                  String businessHour,
                                  String dutyHour);
    
    /**
     * 
     * @param coaches
     * @param date
     * @param coachRestType
     * @param hour
     */
    public void editBatchSchedule(String coaches, Date date, CoachRestType coachRestType, String hour);
    
    /**
     * 
     * @param coaches
     * @param date
     * @param hour
     */
    public void batchBusinessCalendar(String coaches, Date date, String hour);
    
    /**
     * 
     * @param coach
     * @param beginDate
     * @param endDate
     */
    public void editAnnualLeave(Principal coach, Date beginDate, Date endDate);
    

    /**
     * 
     * @param coach
     * @param expCourseId
     * @param restDate
     * @param restHour
     * @param expUserMobile
     * @param expUserName
     */
    public void editExperience(Principal coach, Long expCourseId, Date restDate, String restHour, String expUserMobile, String expUserName);
}
